package com.example.graduation.service;

import com.example.graduation.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.graduation.util.R;

import java.util.Set;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author xyc
 * @since 2022-02-11
 */
public interface UserService extends IService<User> {

    /**
     * 根据openid登录
     *
     * @return
     */
    public Integer login(String code);

    /**
     * 根据账号密码登录
     * 账号可以为手机号码或者邮箱号码
     * 这个方法主要解决给其他人借用手机登录
     *
     * @param phoneOrEmail
     * @param password
     * @return
     */
    public Integer login(String phoneOrEmail, String password);


    /**
     * 用户注册
     *
     * @param phone    手机号码
     * @param email    邮箱号码
     * @param password 用户密码
     * @param code     微信临时授权码
     * @return
     */
    public Integer register(String phone, String email, String password, String code, String nickName, String photo);

    /**
     * 邮箱验证登录
     *
     * @param email
     * @param code
     * @return
     */
    Integer loginByEmailCode(String email, String code);


    /**
     * 发送邮箱验证码
     *
     * @param email
     * @return
     */
    String sendCode(String email);


    /**
     * 根据用户id，查询用户的状态是否正常
     *
     * @param userId
     * @return
     */
    User searchById(int userId);


    /**
     * 根据用户id查询用户权限
     *
     * @param userId
     * @return
     */
    Set<String> searchPermissionById(int userId);


    /**
     * 用户向管理员事情入驻小型购物商城
     *
     * @param token
     * @param position
     * @param name
     * @param photo
     * @param content
     * @return
     */
    public Boolean apply(String token, String position, String name, String photo, String content, String license, String shoptype);
}
